1. Technical Field of the Invention
The present invention relates generally to developments in the field of computer systems and, more particularly, to improved signal transmission techniques in highly available systems by way of bus ring-back and voltage over-shoot reduction.
2. Description of Related Art
Networks serve the purpose of connecting many different personal computers (PC's) , workstations, or terminals to each other, and to one or more host computers, printers, file servers etc., so that expensive computing assets, programs, files and other data may be shared among many users.
In a network utilizing a client/server architecture, the client (a personal computer or workstation) is the requesting machine and the server is the supplying machine, both of which may preferably be connected via the network, such as a local area network (LAN), wide area network (WAN) or metropolitan area network (MAN). This is in contrast to early network systems that utilized a mainframe with dedicated terminals.
In a client/server network, the client typically contains a user interface and may perform some or all of the application processing and, as mentioned above, can include a personal computer or workstation. The server in a client/server network can be a high-speed microcomputer or minicomputer and, in the case of a high-end server, can include multiple processors and mass data storage such as multiple CD-ROM drives and multiple hard drives, preferably with Redundant Array of Inexpensive Disk (RAID) protection. An exemplary server such as a database server maintains the databases and processes requests from the client to extract data from or update the database. An application server provides additional business processing for the clients. The network operating system (NOS) together with the database management system (DBMS) and transaction monitor (TP monitor) are responsible for the integrity and security of the server.
Client/server networks are widely used throughout many different industries and business organizations, especially where mission-critical applications requiring high performance are routinely launched. The mass storage and multi-processing capabilities provided by current client/server network systems (for example, the high-end servers) that run such applications permit a wide range of essential services and functions to be provided through their use.
As can be appreciated, many businesses are highly dependent upon the availability of their client/server network systems to permit essential network services and functions to be carried out. As client/server network systems become increasingly essential to the everyday operations of such businesses, additional steps need to been taken in the design and construction of the server in the client/server network system to ensure its continuous availability to the clients. That is to say, in the design and construction of a server, steps need to be taken to ensure that the server can be operated with little or no downtime.
It can be appreciated by those skilled in the art that high availability, reliability and serviceability are valuable design aspects in ensuring that a server is a "zero downtime" system that will operate with little or no downtime. The modularity of components within a server has been recognized as an important design consideration in ensuring that the downtime of a server will be minimized. Modules can be removed and examined for operability or other purposes much easier than permanently mounted fixtures within a server chassis. When various components of a server can be provided in a modular form, they can also be readily replaced to maintain the operational status of the server with minimal downtime.
Removable modular components may include disc drives and power supplies. As described above, the removability of modular components allows for better overall serviceability of the computer system which is a distinct advantage. For example, a defective power supply in the server generally requires prompt replacement in order to limit downtime. Modular components and connectors facilitate prompt replacement and are thus popular in many computer designs.
Originally, a rule of practice in the maintenance of modular components or printed circuit boards of a server was that of turning the power to the server off before any modular components or printed circuit boards were removed from or added to the chassis or support frame of the server. Recent innovations have centered around a highly desirable design goal of "hot-pluggability" which addresses the benefits derived from inserting and removing modular components and printed cards from the chassis of the server when the server is electrically connected and operational. It can be readily appreciated that modularization and hot-pluggability can have a significant bearing on the high availability aspect of a high-end server.
Hot-pluggable components may include storage or disc drives, drive cages, fans, power supplies, system I/O boards, control boards, processor boards, and other sub-assemblies. The ability to remove these constituent components without having to power down the server allows for better overall serviceability of the system, which is a distinct advantage to both the user and the maintenance technician.
Component redundancy has also been recognized as an important design consideration in ensuring that a server will operate with little or no downtime. Essentially, component redundancy is typically provided in a system to better ensure that at least one of the redundant components is operable, thereby minimizing the system downtime. With component redundancy, at least two components are provided that can perform the same function, such that if one of the components becomes faulty for some reason, the operation fails over to the redundant component. When at least one of the redundant components is operable, continued operation of the computer system is possible even if others of the redundant components fail. To further enhance reliability and serviceability, redundant components have been made hot-pluggable.
Dynamic reconfiguration of a server system can also be accomplished by providing upgradable modular components therein. As can be readily appreciated, this objective can be accomplished by the addition or substitution of components having different circuits, preferably updated or upgraded, disposed therewithin. When components are redundant and hot pluggable, reconfiguration of the server is often possible without taking the server offline.
Another important design aspect with respect to providing redundant and hot pluggable components in a server system is to ensure and maintain a safe working environment while the server is operating and being repaired or upgraded. Accordingly, when the system components are swapped or upgraded, the exposure of hot connectors and contacts must be kept to a minimum. It can be appreciated by those skilled in the art that further developments in this area would significantly enhance the reliability and serviceability aspects of a high-end server system.
To further enhance the serviceability of server systems, additional innovations may be required in the design and construction of diagnostic sub-systems thereof. In existing client/server network systems it is often difficult to obtain in a timely manner important diagnostic data and information corresponding to a component failure in order to facilitate the quick serviceability of the server. Therefore, it can be appreciated that the more information that can be readily provided to locate a defective component or problem with the server, the better is the optimization of the amount of time the server is up and running.
It should be readily understood that the aspects of high availability, reliability and serviceability of computer systems are, at least in part, inter-related to the performance of such systems. For example, a poorly performing system is less likely to be highly available or reliable because such poor performance may typically result in persistent malfunctioning. As is known in the art, a significant performance bottle-neck in many current computer systems can be the ease and speed with which transmission signals settle on a conductive pathway, i.e., a bus.
Signal propagation in a communication pathway such as a bus physically occurs along an electrically conductive element, for example, a wire trace. As the operating speeds of the computer systems increase, propagation of signals between various devices over the communication pathway must be increasingly well controlled. For example, at relatively slow system clock and bus data transfer rates, signal propagation characteristics remain relatively independent of the conductor length and media discontinuities, and the signal waveform is adequately predicted and described by DC circuit analysis. At low frequencies, signals are fully absorbed (that is, non-reflected) at media discontinuities and terminal ends of the conductor, and do not affect other functional subsystems coupled to the conductor, that is, the bus.
However, as the signal frequency increases, for example, greater than around 30 MHZ or so, transmission characteristics of a bus (for example, minimum cycle time, which in turn determines the maximum bus transfer rate), are no longer independent of the conductor geometry, especially the length, or of the media discontinuities. Two inter-related electrical parameters are of particular importance: propagation delay and settling time. The total delay associated with driving the bus includes the propagation delay through a bus driver and the period of time necessary to have the bus settle. As is known in the art, bus settling time is related, among other parameters, to the time necessary to have reflections, or "ring-back," on the bus die out before the data is received by the intended receiver on the bus, and to the degree of a voltage over-shoot caused by the reflective waves, which over-shoot may occur in both positive and negative directions.
It can be appreciated that the problem of such voltage over-shoots is aggravated especially when certain practical considerations regarding the bus system design come into play. For example, when a bus is optimized to operate at a voltage different from that of a driving device, it is possible to have a pronounced voltage over-shoot on the bus. Also, when the drivers and receivers are optimized to operate at different voltages, as may be the case when modularized components in a system are typically designed to be swappable with a large number of existing replacements on the market, the undesirable effects of voltage overshoots are significantly increased.
As the data transfer rates on a bus increase, it has therefore become necessary to minimize reflections and associated voltage over-shoots on the bus. To reduce the instances of reflected signals that cause data transmission errors in high frequency data communication pathways, line terminators have been developed to match the impedance of the transmission line and thus provide a nonreflecting, that is, absorbing, termination to the transmission line. In this approach, precisely matched line terminators are coupled to terminal ends of transmission lines (that is, bus conductors) so that to the signal the lines appear to be infinite in length, causing the signal to be absorbed fully at the terminal end. Thus, by providing terminators at terminal ends of a bus interconnecting one or more subsystems, reflections on the bus are minimized or precluded altogether, thereby ensuring reliable operation of functional subsystems and devices coupled to the bus.
Several problems are encountered in the foregoing approach to terminating the bus. For example, one problem is that the approach does not specifically address the length-limitation of signal transmission characteristics of a high-performance bus. Further, this approach is not readily or easily applicable in a bus system that is designed to be "non-terminated," that is, a reflecting bus. For example, a recently introduced high-performance system bus, known as the Peripheral Component Interconnect (PCI) bus, is a non-terminated bus that operates, for example, at around 33 MHZ, and may not be more than about 10 inches in length. As can be appreciated, such a constraint restricts a system designer's choice as to how many devices, including expansion slots, can be positioned on the PCI bus. It is known in the art that current PCI bus architectures are designed to support no more than 8-10 loads.
Yet another, related problem arises when a hot-pluggable expansion slot is provided as one of the loads disposed on the bus. Especially, if the expansion slot is to receive an option card or expansion card with drivers designed to operate at a voltage different from the bus voltage or from that of receivers on the bus, resultant voltage over-shoots would give rise to exacerbated effects on the settling time of the non-terminated bus.
Techniques providing in-line, non-terminal termination by way of resistive elements to reduce ring-back in a non-terminated bus have been known for some time. However, such techniques typically involve precise matching of the resistive elements relative to conductor geometry, which renders them platform- and geometry-dependent. Further, they do not address or provide for hot-pluggable expansion slots as loads on the bus. Accordingly, it may be appreciated that there is a need for systems and methods for reducing or preferably eliminating bus ring-back and voltage overshoots in high-performance computer systems with high availability, reliability and serviceability. Moreover, considerably enhanced utility can be found in systems that can allow extra loading on the buses provided therewith. Further, it would be of added benefit if the apparatus for bus ring-back reduction preferably provides additional functionality of facilitating the hot-pluggability aspect of the system.